Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address some pixel local reco PR review comments #575

Conversation

makortel
Copy link

@makortel makortel commented Nov 20, 2020

PR description:

This PR addresses to some review comments of cms-sw#31721 (what I've done so far). I could still do some more for the parts of the code I've mostly done, therefore I opened this in draft mode (but I thought there would be some value in an open PR).

(this PR is against CMSSW_11_2_Patatrack on purpose, I'll cherry pick for a PR against cms-patatrack:patatrack_integration_9_N_pixel_local_reco "when done")

PR validation:

Code compiles.

@makortel
Copy link
Author

How much do we want to review our updates to the CMSSW PR before merging? (my feeling is that the changes are easier to review here than there)

Comment on lines 30 to 33
uint32_t const *moduleStart() const { return moduleStart_d.get(); }
uint32_t const *clusInModule() const { return clusInModule_d.get(); }
uint32_t const *moduleId() const { return moduleId_d.get(); }
uint32_t const *clusModuleStart() const { return clusModuleStart_d.get(); }
Copy link

@fwyzard fwyzard Nov 21, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This (and the equivalent in SiPixelDigisCUDA.h) is the only change I'm not very fond of.
I've seen the comment by Slava - but, if std::vector can happily have both begin() and cbegin() etc. I don't see why we cannot have the same here.

However, could you remind me why we actually need c_moduleStart() etc. ?
What I mean is, if somebody wants a const*, why not just write

uint32_t const* start = clusters.moduleStart();

instead of

uint32_t const* start = clusters.c_moduleStart();

?

Moreover, all use cases I've found are in SiPixelRawToClusterGPUKernel.cu, and are used to pass a const * argument to a kernel.
Using .moduleInd() instead of .c_moduleInd() etc. should work just fine in this case, and the pointer would still be const in the kernel function.

Am I missing something else ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using non-const clusModuleStart() would indeed work. The idea of c_clusModuleStart() is for a case where the returned pointer is passed directly to a function along func(clusters.moduleStart(), ...) and the caller wants to ensure that the function gets a pointer-to-const. The func() may today take a pointer-to-const, but someone could change the function to take a pointer-to-non-const and modify the contents of the pointed-to-memory. The c_clusModuleStart() approach (or explicit const_cast) would help to catch that mismatch with a compilation error.

Written that, I suppose for this particular case the question is more academic, given that all the uses of non-const clusters is in a single file (plus a few #includes) and that this pattern for SoA would better not spread much. So I can change to the other way as well (but would really like to avoid changing again after that :) ).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The last three commits show the impact of dropping c_ prefix. If we go with this approach, I'll squash them into the respective commits having other changes of the affected files.

@fwyzard
Copy link

fwyzard commented Nov 21, 2020

@makortel thank you for this.
Drop a message if/when you'd like to see it tested.

@makortel makortel force-pushed the patatrackPixelLocalRecoReview branch from fb30898 to fe630f4 Compare November 21, 2020 01:58
@makortel makortel changed the title [WIP] Address pixel local reco PR review comments Address pixel local reco PR review comments Nov 21, 2020
@makortel makortel marked this pull request as ready for review November 21, 2020 01:59
@makortel
Copy link
Author

Drop a message if/when you'd like to see it tested.

Now could be a good moment, thanks. I'm not planning to proceed further for now (because of time constraints).

@makortel makortel changed the title Address pixel local reco PR review comments Address some pixel local reco PR review comments Nov 23, 2020
@makortel
Copy link
Author

Did the validation get stuck?

@AdrianoDee
Copy link

AdrianoDee commented Nov 24, 2020

The validation failed on .502, among the others, with something like

An exception of category 'DictionaryNotFound' occurred while
   [0] Constructing the EventProcessor
   [1] Constructing module: class=SiPixelRecHitFromSOA label='siPixelRecHitsLegacyPreSplitting'
   [2] Calling ProductRegistryHelper::addToRegistry, checking dictionaries for produced types
Exception Message:
No data dictionary found for the following classes:

  HostProduct<unsigned int[]>
  edm::Wrapper<HostProduct<unsigned int[]> >

To fix this what I found helpful was:

  • move classes.h and classes_def.xml from CUDADataFormats/Common/ to CUDADataFormats/Common/src/
  • add <use name="DataFormats/Common"/> to CUDADataFormats/Common/BuildFile.xml(for the edm::Wrapper)

@makortel
Copy link
Author

Thanks, so the dictionary generation failed somehow

@fwyzard fwyzard added the Pixels Pixels-related developments label Nov 24, 2020
@makortel makortel force-pushed the patatrackPixelLocalRecoReview branch from fe630f4 to 93150d2 Compare November 24, 2020 19:06
@makortel
Copy link
Author

Ok, it was pretty clear why the dictionaries were not generated. Could you try again now?

@makortel
Copy link
Author

Now there is a merge conflict from merge of #577

- Remove commented out default constructor and private: from DeviceConstView
  * This is perhaps the best compromise between non-default
    constructors not being preferred for device allocations, and the
    use case in SiPixelRecHitSoAFromLegacy (for the expected life time
    of this class)
- Remove const getters without c_ prefix
- Improve constructor parameter name
- Use more initializer list
- initialize nClusters_h
- Use type alias
- Remove unnecessary method
- Use more initializer list
- Remove unnecessary methods
- Remove commented out default constructor and private: from DeviceConstView
- Add comments for remaining SiPixelDigisCUDA member arrays
- Remove redundant assert
- Move constructor inline
- Remove redundant assert
- Add comments
@makortel makortel force-pushed the patatrackPixelLocalRecoReview branch from 93150d2 to a15f89e Compare November 24, 2020 21:59
@makortel
Copy link
Author

Rebased on top of 11_2_X_Patatrack to fix the conflict (testing building now, will take a while)

@fwyzard
Copy link

fwyzard commented Nov 24, 2020

thanks, I didn't even manage to ask ;-)

@fwyzard
Copy link

fwyzard commented Nov 25, 2020

the error is

%MSG-w CUDAService:  (NoModuleName) 25-Nov-2020 03:20:59 CET pre-events
Failed to initialize the CUDA runtime.
Disabling the CUDAService.
%MSG

which shouldn't be related to these changes... will have a look

@fwyzard
Copy link

fwyzard commented Nov 25, 2020

cudaErrorSystemDriverMismatch: system has unsupported display driver / cuda driver combination

@fwyzard
Copy link

fwyzard commented Nov 26, 2020

Validation summary

Reference release CMSSW_11_2_0_pre10 at 6c149b2
Development branch cms-patatrack/master at 47423b3
Testing branch cms-patatrack/master at 47423b3 with PRs:

Validation plots

/RelValTTbar_14TeV/CMSSW_11_2_0_pre7-PU_112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW

  • tracking validation plots and summary for workflow 11634.5
  • ⚠️ tracking validation plots and summary for workflow 11634.501 are missing
  • tracking validation plots and summary for workflow 11634.502
  • ⚠️ tracking validation plots and summary for workflow 11634.505 are missing
  • tracking validation plots and summary for workflow 11634.506

/RelValZMM_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v2/GEN-SIM-DIGI-RAW

  • tracking validation plots and summary for workflow 11634.5
  • tracking validation plots and summary for workflow 11634.501
  • tracking validation plots and summary for workflow 11634.502
  • tracking validation plots and summary for workflow 11634.505
  • tracking validation plots and summary for workflow 11634.506

/RelValZEE_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW

  • tracking validation plots and summary for workflow 11634.5
  • tracking validation plots and summary for workflow 11634.501
  • tracking validation plots and summary for workflow 11634.502
  • tracking validation plots and summary for workflow 11634.505
  • tracking validation plots and summary for workflow 11634.506

Validation plots (CPU vs GPU)

/RelValTTbar_14TeV/CMSSW_11_2_0_pre7-PU_112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW

  • ⚠️ tracking validation plots and summary for workflows 11634.502 and 11634.501 are missing
  • ⚠️ tracking validation plots and summary for workflows 11634.506 and 11634.505 are missing

/RelValZMM_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v2/GEN-SIM-DIGI-RAW

  • tracking validation plots and summary for workflows 11634.502 and 11634.501
  • tracking validation plots and summary for workflows 11634.506 and 11634.505

/RelValZEE_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW

  • tracking validation plots and summary for workflows 11634.502 and 11634.501
  • tracking validation plots and summary for workflows 11634.506 and 11634.505

Throughput plots

/EphemeralHLTPhysics1/Run2018D-v1/RAW run=323775 lumi=53

scan-136.885502.png
zoom-136.885502.png
scan-136.885512.png
zoom-136.885512.png
scan-136.885522.png
zoom-136.885522.png

logs and nvprof/nvvp profiles

/RelValTTbar_14TeV/CMSSW_11_2_0_pre7-PU_112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW

  • reference release, workflow 11634.5
  • development release, workflow 11634.5
  • development release, workflow 11634.501
  • development release, workflow 11634.502
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 11634.505
  • development release, workflow 11634.506
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 11634.511
  • development release, workflow 11634.512
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • cuda-memcheck --tool synccheck (report, log) found no CUDA-MEMCHECK results
  • development release, workflow 11634.521
  • development release, workflow 11634.522
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 136.885502
  • development release, workflow 136.885512
  • development release, workflow 136.885522
  • testing release, workflow 11634.5
  • testing release, workflow 11634.501
  • testing release, workflow 11634.502
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 11634.505
  • testing release, workflow 11634.506
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 11634.511
  • testing release, workflow 11634.512
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • cuda-memcheck --tool synccheck (report, log) found no CUDA-MEMCHECK results
  • testing release, workflow 11634.521
  • testing release, workflow 11634.522
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 136.885502
  • testing release, workflow 136.885512
  • testing release, workflow 136.885522

/RelValZMM_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v2/GEN-SIM-DIGI-RAW

  • reference release, workflow 11634.5
  • development release, workflow 11634.5
  • development release, workflow 11634.501
  • development release, workflow 11634.502
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 11634.505
  • development release, workflow 11634.506
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 11634.511
  • development release, workflow 11634.512
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • cuda-memcheck --tool synccheck (report, log) found no CUDA-MEMCHECK results
  • development release, workflow 11634.521
  • development release, workflow 11634.522
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 136.885502
  • development release, workflow 136.885512
  • development release, workflow 136.885522
  • testing release, workflow 11634.5
  • testing release, workflow 11634.501
  • testing release, workflow 11634.502
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 11634.505
  • testing release, workflow 11634.506
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 11634.511
  • testing release, workflow 11634.512
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • cuda-memcheck --tool synccheck (report, log) found no CUDA-MEMCHECK results
  • testing release, workflow 11634.521
  • testing release, workflow 11634.522
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 136.885502
  • testing release, workflow 136.885512
  • testing release, workflow 136.885522

/RelValZEE_14/CMSSW_11_2_0_pre7-112X_mcRun3_2021_realistic_v8-v1/GEN-SIM-DIGI-RAW

  • reference release, workflow 11634.5
  • development release, workflow 11634.5
  • development release, workflow 11634.501
  • development release, workflow 11634.502
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 11634.505
  • development release, workflow 11634.506
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 11634.511
  • development release, workflow 11634.512
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • cuda-memcheck --tool synccheck (report, log) found no CUDA-MEMCHECK results
  • development release, workflow 11634.521
  • development release, workflow 11634.522
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • development release, workflow 136.885502
  • development release, workflow 136.885512
  • development release, workflow 136.885522
  • testing release, workflow 11634.5
  • testing release, workflow 11634.501
  • testing release, workflow 11634.502
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 11634.505
  • testing release, workflow 11634.506
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 11634.511
  • testing release, workflow 11634.512
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • cuda-memcheck --tool synccheck (report, log) found no CUDA-MEMCHECK results
  • testing release, workflow 11634.521
  • testing release, workflow 11634.522
    • ✔️ step3.py: log
    • ✔️ profile.py: log
    • ✔️ cuda-memcheck --tool initcheck (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool memcheck --leak-check full --report-api-errors all (report, log) did not find any errors
    • ✔️ cuda-memcheck --tool synccheck (report, log) did not find any errors
  • testing release, workflow 136.885502
  • testing release, workflow 136.885512
  • testing release, workflow 136.885522

Logs

The full log is available at https://patatrack.web.cern.ch/patatrack/validation/pulls/ba84e889f4c5b4d996bf71fdb978193ac7cb6068/log .

@fwyzard
Copy link

fwyzard commented Nov 27, 2020

Looks good to me.
Shall I merge it, or do you expect further changes ?

@fwyzard fwyzard merged commit 79d75e7 into cms-patatrack:CMSSW_11_2_X_Patatrack Nov 27, 2020
fwyzard added a commit that referenced this pull request Nov 27, 2020
Remove SiPixelDigiHeterogeneousConverter as obsolete, should have been removed as part of #100.

Address review comments for SiPixelClustersCUDA:
  - remove commented out default constructor and private: from DeviceConstView;
    this is perhaps the best compromise between non-default constructors not
    being preferred for device allocations, and the use case in
    SiPixelRecHitSoAFromLegacy (for the expected life time of this class)
  - remove const getters with c_ prefix
  - improve constructor parameter name
  - use more initializer list
  - initialize nClusters_h

Address review comments for SiPixelDigiErrorsCUDA:
  - use type alias
  - remove const getters with c_ prefix and other unnecessary methods
  - use more initializer list

Address review comments for SiPixelDigisCUDA:
  - remove const getters with c_ prefix and other unnecessary methods
  - remove commented out default constructor and private: from DeviceConstView
  - add comments for remaining SiPixelDigisCUDA member arrays

Move PixelErrorsCompact and SiPixelDigiErrorsSoa to DataFormats/SiPixelRawData, rename classes

Address review comments for SiPixelErrorsSoA
  - remove redundant assert
  - move constructor inline

Address review comments for SiPixelDigisSoA
  - remove redundant assert
  - add comments

Enable if constexpr also for CUDA in TrackingRecHit2DHeterogeneous

Move dictionary of HostProduct<unsigned int[]> to CUDADataFormats/Common
@makortel makortel deleted the patatrackPixelLocalRecoReview branch November 30, 2020 15:57
fwyzard pushed a commit that referenced this pull request Dec 25, 2020
Remove SiPixelDigiHeterogeneousConverter as obsolete, should have been removed as part of #100.

Address review comments for SiPixelClustersCUDA:
  - remove commented out default constructor and private: from DeviceConstView;
    this is perhaps the best compromise between non-default constructors not
    being preferred for device allocations, and the use case in
    SiPixelRecHitSoAFromLegacy (for the expected life time of this class)
  - remove const getters with c_ prefix
  - improve constructor parameter name
  - use more initializer list
  - initialize nClusters_h

Address review comments for SiPixelDigiErrorsCUDA:
  - use type alias
  - remove const getters with c_ prefix and other unnecessary methods
  - use more initializer list

Address review comments for SiPixelDigisCUDA:
  - remove const getters with c_ prefix and other unnecessary methods
  - remove commented out default constructor and private: from DeviceConstView
  - add comments for remaining SiPixelDigisCUDA member arrays

Move PixelErrorsCompact and SiPixelDigiErrorsSoa to DataFormats/SiPixelRawData, rename classes

Address review comments for SiPixelErrorsSoA
  - remove redundant assert
  - move constructor inline

Address review comments for SiPixelDigisSoA
  - remove redundant assert
  - add comments

Enable if constexpr also for CUDA in TrackingRecHit2DHeterogeneous

Move dictionary of HostProduct<unsigned int[]> to CUDADataFormats/Common
fwyzard pushed a commit that referenced this pull request Dec 29, 2020
Remove SiPixelDigiHeterogeneousConverter as obsolete, should have been removed as part of #100.

Address review comments for SiPixelClustersCUDA:
  - remove commented out default constructor and private: from DeviceConstView;
    this is perhaps the best compromise between non-default constructors not
    being preferred for device allocations, and the use case in
    SiPixelRecHitSoAFromLegacy (for the expected life time of this class)
  - remove const getters with c_ prefix
  - improve constructor parameter name
  - use more initializer list
  - initialize nClusters_h

Address review comments for SiPixelDigiErrorsCUDA:
  - use type alias
  - remove const getters with c_ prefix and other unnecessary methods
  - use more initializer list

Address review comments for SiPixelDigisCUDA:
  - remove const getters with c_ prefix and other unnecessary methods
  - remove commented out default constructor and private: from DeviceConstView
  - add comments for remaining SiPixelDigisCUDA member arrays

Move PixelErrorsCompact and SiPixelDigiErrorsSoa to DataFormats/SiPixelRawData, rename classes

Address review comments for SiPixelErrorsSoA
  - remove redundant assert
  - move constructor inline

Address review comments for SiPixelDigisSoA
  - remove redundant assert
  - add comments

Enable if constexpr also for CUDA in TrackingRecHit2DHeterogeneous

Move dictionary of HostProduct<unsigned int[]> to CUDADataFormats/Common
fwyzard pushed a commit that referenced this pull request Dec 29, 2020
Remove SiPixelDigiHeterogeneousConverter as obsolete, should have been removed as part of #100.

Address review comments for SiPixelClustersCUDA:
  - remove commented out default constructor and private: from DeviceConstView;
    this is perhaps the best compromise between non-default constructors not
    being preferred for device allocations, and the use case in
    SiPixelRecHitSoAFromLegacy (for the expected life time of this class)
  - remove const getters with c_ prefix
  - improve constructor parameter name
  - use more initializer list
  - initialize nClusters_h

Address review comments for SiPixelDigiErrorsCUDA:
  - use type alias
  - remove const getters with c_ prefix and other unnecessary methods
  - use more initializer list

Address review comments for SiPixelDigisCUDA:
  - remove const getters with c_ prefix and other unnecessary methods
  - remove commented out default constructor and private: from DeviceConstView
  - add comments for remaining SiPixelDigisCUDA member arrays

Move PixelErrorsCompact and SiPixelDigiErrorsSoa to DataFormats/SiPixelRawData, rename classes

Address review comments for SiPixelErrorsSoA
  - remove redundant assert
  - move constructor inline

Address review comments for SiPixelDigisSoA
  - remove redundant assert
  - add comments

Enable if constexpr also for CUDA in TrackingRecHit2DHeterogeneous

Move dictionary of HostProduct<unsigned int[]> to CUDADataFormats/Common
fwyzard pushed a commit that referenced this pull request Dec 29, 2020
Remove SiPixelDigiHeterogeneousConverter as obsolete, should have been removed as part of #100.

Address review comments for SiPixelClustersCUDA:
  - remove commented out default constructor and private: from DeviceConstView;
    this is perhaps the best compromise between non-default constructors not
    being preferred for device allocations, and the use case in
    SiPixelRecHitSoAFromLegacy (for the expected life time of this class)
  - remove const getters with c_ prefix
  - improve constructor parameter name
  - use more initializer list
  - initialize nClusters_h

Address review comments for SiPixelDigiErrorsCUDA:
  - use type alias
  - remove const getters with c_ prefix and other unnecessary methods
  - use more initializer list

Address review comments for SiPixelDigisCUDA:
  - remove const getters with c_ prefix and other unnecessary methods
  - remove commented out default constructor and private: from DeviceConstView
  - add comments for remaining SiPixelDigisCUDA member arrays

Move PixelErrorsCompact and SiPixelDigiErrorsSoa to DataFormats/SiPixelRawData, rename classes

Address review comments for SiPixelErrorsSoA
  - remove redundant assert
  - move constructor inline

Address review comments for SiPixelDigisSoA
  - remove redundant assert
  - add comments

Enable if constexpr also for CUDA in TrackingRecHit2DHeterogeneous

Move dictionary of HostProduct<unsigned int[]> to CUDADataFormats/Common
fwyzard pushed a commit that referenced this pull request Dec 29, 2020
Remove SiPixelDigiHeterogeneousConverter as obsolete, should have been removed as part of #100.

Address review comments for SiPixelClustersCUDA:
  - remove commented out default constructor and private: from DeviceConstView;
    this is perhaps the best compromise between non-default constructors not
    being preferred for device allocations, and the use case in
    SiPixelRecHitSoAFromLegacy (for the expected life time of this class)
  - remove const getters with c_ prefix
  - improve constructor parameter name
  - use more initializer list
  - initialize nClusters_h

Address review comments for SiPixelDigiErrorsCUDA:
  - use type alias
  - remove const getters with c_ prefix and other unnecessary methods
  - use more initializer list

Address review comments for SiPixelDigisCUDA:
  - remove const getters with c_ prefix and other unnecessary methods
  - remove commented out default constructor and private: from DeviceConstView
  - add comments for remaining SiPixelDigisCUDA member arrays

Move PixelErrorsCompact and SiPixelDigiErrorsSoa to DataFormats/SiPixelRawData, rename classes

Address review comments for SiPixelErrorsSoA
  - remove redundant assert
  - move constructor inline

Address review comments for SiPixelDigisSoA
  - remove redundant assert
  - add comments

Enable if constexpr also for CUDA in TrackingRecHit2DHeterogeneous

Move dictionary of HostProduct<unsigned int[]> to CUDADataFormats/Common
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Pixels Pixels-related developments
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants